Concevoir pour la concurrence en Elixir va bien au-delà du simple lancement de processus ; il exige une méthode rigoureuse pour atteindre 99,9999999 % de fiabilité (neuf neufs). Cela équivaut à environ 1 seconde d'indisponibilité tous les 30 ans. Pour atteindre cette norme, nous utilisons le cadre à cinq questions.
L'heuristique structurelle
Avant d'écrire une seule ligne de code OTP, utilisez ces questions pour décomposer les problèmes étatiques en primitives gérables :
- Environnement et contraintes : S'agit-il d'un seul nœud ? D'un cluster mondial ? Quelles sont les limites mémoire / E/S ?
- Points focaux : Où les données résident-elles ? Qui « détient » l'état (par exemple, un registre des résultats) ?
- Caractéristiques d'exécution : Combien de requêtes simultanées ? Sont-elles limitées par le processeur ou par les entrées/sorties ?
- Protection : Quel état doit survivre ? Que pouvons-nous permettre de perdre et de redémarrer ?
- Initialisation : Comment initialisons-nous l'arbre ? Quels services dépendent des autres ?
En traitant ces questions comme des contraintes, vous évitez la concurrence « Big Ball of Mud », où chaque processus communique avec tous les autres sans hiérarchie claire.
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>